/**    
 * @{#} PermissionService.java Create on Mar 23, 2012 12:18:11 AM    
 *    
 * Copyright (c) 2012 by 悠忧虫.    
 *    
 * @author 悠忧虫
 * @version 1.0    
 */
package tk.sunlatus.project.permission.service;

import java.util.List;

import tk.sunlatus.project.permission.domain.Permission;

/**
 * @{# PermissionService.java Create on Mar 23, 2012 12:18:11 AM
 * 
 *     类功能说明: 权限服务类<br>
 *     <ul>
 *     <li>用户鉴权</li>
 *     </ul>
 *     <p>
 *     Copyright: Copyright(c) 2012
 *     </p>
 * @Version 1.0
 * @Author 悠忧虫
 */
public interface PermissionService {

    /**
     * 方法描述：添加权限
     * 
     * @param permission
     *            权限信息
     * @return 添加成功返回权限信息，添加失败返回null
     */
    Permission addPermission(Permission permission);

    /**
     * 方法描述：删除权限，删除时先解除与之关联的角色、菜单等
     * 
     * @param permission
     *            权限信息
     * @return 删除成功返回权限信息，失败返回null
     */
    Permission deletePermission(Permission permission);

    /**
     * 方法描述：将权限与角色进行关联
     * 
     * @param permission
     *            权限信息ID
     * @param roleID
     *            角色ID
     * @return 权限信息<br>
     *         关联成功返回权限信息，失败返回null
     */
    Permission addPermission2Role(String permissionID, String roleID);

    /**
     * 方法描述：将权限列表与角色进行关联
     * 
     * @param permission
     *            权限信息ID
     * @param roleID
     *            角色ID
     * @return 权限信息<br>
     *         关联成功返回权限信息列表，失败返回null
     */
    List<Permission> addPermissions2Role(List<String> permissionIDs, String roleID);

    
    
    
}
